home *** CD-ROM | disk | FTP | other *** search
Visual Basic class definition | 1998-11-02 | 2.0 KB | 71 lines |
- VERSION 1.0 CLASS
- BEGIN
- MultiUse = -1 'True
- Persistable = 0 'NotPersistable
- DataBindingBehavior = 0 'vbNone
- DataSourceBehavior = 0 'vbNone
- MTSTransactionMode = 0 'NotAnMTSObject
- END
- Attribute VB_Name = "CDeckOfCards"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = True
- Attribute VB_PredeclaredId = False
- Attribute VB_Exposed = False
- Private m_deck(1 To 52) As CCard
- Public Event Shuffling(n As Integer, nMax As Integer)
-
- Private Sub Class_Initialize()
- Dim i As Integer
- For i = 1 To 52
- Set m_deck(i) = New CCard
- ' Make the first thirteen cards hearts, the
- ' next thirteen cards diamonds, and so on.
- Select Case i
- Case Is <= 13
- m_deck(i).Suit = "Hearts"
- Case Is <= 26
- m_deck(i).Suit = "Diamonds"
- Case Is <= 39
- m_deck(i).Suit = "Clubs"
- Case Else
- m_deck(i).Suit = "Spades"
- End Select
- ' Assign numbers from 1 through 13 to the
- ' cards of each suit.
- If (i Mod 13 = 0) Then
- m_deck(i).Denomination = str(13)
- Else
- m_deck(i).Denomination = str(i Mod 13)
- End If
- Next i
- End Sub
-
- Public Function ReadCard(cardNum As Integer) As String
- ReadCard = m_deck(cardNum).IdentifyCard
- End Function
-
- Private Sub Swap(ByVal i As Integer, ByVal j As Integer)
- 'Swap the ith and jth card in the deck
- Dim TempCard As New CCard
- TempCard.Denomination = m_deck(i).Denomination
- TempCard.Suit = m_deck(i).Suit
- m_deck(i).Denomination = m_deck(j).Denomination
- m_deck(i).Suit = m_deck(j).Suit
- m_deck(j).Denomination = TempCard.Denomination
- m_deck(j).Suit = TempCard.Suit
- End Sub
-
- Public Sub ShuffleDeck()
- 'Do 200 passes through the deck. On each pass
- 'swap each card with a randomly selected card.
- Dim index As Integer, i As Integer, k As Integer
- Randomize 'Initialize random number generator
- For i = 1 To 200
- For k = 1 To 52
- index = Int((52 * Rnd) + 1)
- Call Swap(k, index)
- Next k
- RaiseEvent Shuffling(i, 200)
- Next i
- End Sub
-